package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.Comment;
import com.tanhua.dubbo.server.pojo.Publish;
import com.tanhua.dubbo.server.vo.PageInfo;

public interface QuanZiApi {
/**
* 查询好友动态
4.2.2、实现接⼝口
在my-tanhua-dubbo-service中完成：
*
* @param userId ⽤用户id
* @param page 当前⻚页数
* @param pageSize 每⼀一⻚页查询的数据条数
* @return
*/
PageInfo<Publish> queryPublishList(Long userId, Integer page, Integer pageSize);

    /**
     * 发布动态
     * @param publish
     * @return 发布成功返回动态id
     */
 public String savePublish(Publish publish);


    /**
     * 查询推荐动态
     *
     * @param userId 用户id
     * @param page 当前页数
     * @param pageSize 每一页查询的数据条数
     * @return
     */
    PageInfo<Publish> queryRecommendPublishList(Long userId, Integer page, Integer pageSize);

    /**
     * 根据id查询动态
     * @param id
     * @return
     */
    Publish queryPublishById(String id);


    /**
     * 点赞
     * @param userId
     * @param publishId
     * @return
     */
    Boolean likeComment(long userId,String publishId);



    /**
     * 取消点赞
     * @param userId
     * @param publishId
     * @return
     */
    Boolean disLikeComment(long userId,String publishId);

    /**
     *  查询点赞数
     * @param publishId
     * @return
     */
    Long queryLikeCount(String publishId);


    /**
     * 查询用户是否点赞该动态
     * @param userId
     * @param publishId
     * @return
     */
    Boolean  queryUserIsLike(Long userId,String publishId);


   /**
    * 喜欢  type = 3,
    * @param userId
    * @param publishId
    * @return
    */
    Boolean lobeComment(Long userId,String publishId);

   /**
    *  取消喜欢
    * @param userId
    * @param publishId
    * @return
    */
    Boolean disLoveComment(Long userId,String publishId);

   /**
    * 查询喜欢数
    * @param publishId
    * @return
    */
    Long queryLoveCount(String publishId);

   /**
    * 查询用户是否喜欢该动态
    * @param userId
    * @param publishId
    * @return
    */
    Boolean queryUserIsLove(Long userId,String publishId);


   /**
    * 查询评论
    * @param publishId
    * @param page
    * @param pageSize
    * @return
    */
    PageInfo<Comment> queryCommentList(String publishId, Integer page, Integer pageSize);

   /**
    * 发表评论
    * @param userId
    * @param publishId
    * @param content
    * @return
    */
    boolean saveComment(Long userId,String publishId,String content);


    /**
     * 查询对我的点赞消息列表
     *
     * @return
     */
    PageInfo<Comment> queryLikeCommentListByUser(Long userId, Integer page, Integer pageSize);

    /**
     * 查询对我的喜欢消息列表
     *
     * @return
     */
    PageInfo<Comment> queryLoveCommentListByUser(Long userId, Integer page, Integer pageSize);

    /**
     * 查询对我的评论消息列表
     *
     * @return
     */
    PageInfo<Comment> queryCommentListByUser(Long userId, Integer page, Integer pageSize);

    /**
     * 查询相册表
     *
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageInfo<Publish> queryAlbumList(Long userId, Integer page, Integer pageSize);


}